home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / syntax / simula.vim < prev    next >
Encoding:
Text File  |  2001-04-29  |  3.5 KB  |  99 lines

  1. " Vim syntax file
  2. " Language:    Simula
  3. " Maintainer:    Haakon Riiser <haakon@riiser.net>
  4. " Last Change:    2001 Apr 25
  5.  
  6. " For version 5.x: Clear all syntax items
  7. " For version 6.x: Quit when a syntax file was already loaded
  8. if version < 600
  9.     syn clear
  10. elseif exists("b:current_syntax")
  11.     finish
  12. endif
  13.  
  14. " No case sensitivity in Simula
  15. syn case    ignore
  16.  
  17. syn match    simulaComment        "^%.*$" contains=simulaTodo
  18. syn region    simulaComment        start="!\|\<comment\>" end=";" contains=simulaTodo
  19.  
  20. " Text between the keyword 'end' and either a semicolon or one of the
  21. " keywords 'end', 'else', 'when' or 'otherwise' is also a comment
  22. syn region    simulaComment        start="\<end\>"lc=3 matchgroup=Statement end=";\|\<\(end\|else\|when\|otherwise\)\>"
  23.  
  24. syn match    simulaCharError        "'.\{-2,}'"
  25. syn match    simulaCharacter        "'.'"
  26. syn match    simulaCharacter        "'!\d\{-}!'" contains=simulaSpecialChar
  27. syn match    simulaString        '".\{-}"' contains=simulaSpecialChar,simulaTodo
  28.  
  29. syn keyword    simulaBoolean        true false
  30. syn keyword    simulaCompound        begin end
  31. syn keyword    simulaConditional    else if otherwise then until when
  32. syn keyword    simulaConstant        none notext
  33. syn keyword    simulaFunction        procedure
  34. syn keyword    simulaOperator        eq eqv ge gt imp in is le lt ne new not qua
  35. syn keyword    simulaRepeat        while for
  36. syn keyword    simulaReserved        activate after at before delay go goto label prior reactivate switch to
  37. syn keyword    simulaStatement        do inner inspect step this
  38. syn keyword    simulaStorageClass    external hidden name protected value
  39. syn keyword    simulaStructure        class
  40. syn keyword    simulaType        array boolean character integer long real short text virtual
  41. syn match    simulaAssigned        "\<\h\w*\s*\((.*)\)\=\s*:\(=\|-\)"me=e-2
  42. syn match    simulaOperator        "[&:=<>+\-*/]"
  43. syn match    simulaOperator        "\<and\(\s\+then\)\=\>"
  44. syn match    simulaOperator        "\<or\(\s\+else\)\=\>"
  45. syn match    simulaReferenceType    "\<ref\s*(.\{-})"
  46. syn match    simulaSemicolon        ";"
  47. syn match    simulaSpecial        "[(),.]"
  48. syn match    simulaSpecialCharErr    "!\d\{-4,}!" contained
  49. syn match    simulaSpecialCharErr    "!!" contained
  50. syn match    simulaSpecialChar    "!\d\{-}!" contains=simulaSpecialCharErr contained
  51. syn match    simulaTodo        "xxx\+" contained
  52.  
  53. " Integer number (or float without `.')
  54. syn match    simulaNumber        "-\=\<\d\+\>"
  55. " Real with optional exponent
  56. syn match    simulaReal        "-\=\<\d\+\(\.\d\+\)\=\(&&\=[+-]\=\d\+\)\=\>"
  57. " Real starting with a `.', optional exponent
  58. syn match    simulaReal        "-\=\.\d\+\(&&\=[+-]\=\d\+\)\=\>"
  59.  
  60. if version >= 508 || !exists("did_simula_syntax_inits")
  61.     if version < 508
  62.     let did_simula_syntax_inits = 1
  63.     command -nargs=+ HiLink hi link <args>
  64.     else
  65.     command -nargs=+ HiLink hi def link <args>
  66.     endif
  67.  
  68.     HiLink simulaAssigned        Identifier
  69.     HiLink simulaBoolean        Boolean
  70.     HiLink simulaCharacter        Character
  71.     HiLink simulaCharError        Error
  72.     HiLink simulaComment        Comment
  73.     HiLink simulaCompound        Statement
  74.     HiLink simulaConditional        Conditional
  75.     HiLink simulaConstant        Constant
  76.     HiLink simulaFunction        Function
  77.     HiLink simulaNumber            Number
  78.     HiLink simulaOperator        Operator
  79.     HiLink simulaReal            Float
  80.     HiLink simulaReferenceType        Type
  81.     HiLink simulaRepeat            Repeat
  82.     HiLink simulaReserved        Error
  83.     HiLink simulaSemicolon        Statement
  84.     HiLink simulaSpecial        Special
  85.     HiLink simulaSpecialChar        SpecialChar
  86.     HiLink simulaSpecialCharErr        Error
  87.     HiLink simulaStatement        Statement
  88.     HiLink simulaStorageClass        StorageClass
  89.     HiLink simulaString            String
  90.     HiLink simulaStructure        Structure
  91.     HiLink simulaTodo            Todo
  92.     HiLink simulaType            Type
  93.  
  94.     delcommand HiLink
  95. endif
  96.  
  97. let b:current_syntax = "simula"
  98. " vim: sts=4 sw=4 ts=8
  99.